<?php 
    function upload_file($files,$uploadDir,$flag=1,$file_name='')
    {
        //flag? 1 => images
        //		2 => video
        //		3 => file
        $data=array();
        $max_size =204857600;
        
        $size=$files['size'];
        
        if($size>$max_size)
        {
            unlink($files['tmp_name']);
            $data['err']="ERR_LA";
            $data['msg']="File vượt quá kích thước cho phép : ".toMBytes($max_size);
            return $data;
        }
        $filename = stripslashes($files['name']);
        $extension = strtolower(get_file_extension($filename));
        switch ($flag) {
            case '1':
                $ischeck = isImage($extension);
                break;
            case '2':
                $ischeck = isVideo($extension);	
                break;
            case '3':
                $ischeck = isFile($extension);
                break;
        }
        if($ischeck==1){
            $name_temp =str_replace( $extension ,'',$filename); 
            if($file_name!='')
                $name=$file_name.".".$extension;
            else
                $name =date("dmyHis")."_".rand(0,10000).'_'.removeSign($name_temp).".".$extension;
            //$file_ext = $name.'.'.$extension;
            $dirfilename = $uploadDir.$name;
            if (move_uploaded_file($files['tmp_name'], $dirfilename))
            {
                $data['name']=$name;
                $data['ext']=$extension;
                $data['size']=$size;
                $data['err']="";
                $data['msg']="";
                return $data;
            }else{
                $data['err']="ERR_UL";
                $data['msg']="Lỗi trong quá trình upload file.";
                return $data;
            }
        }else{
            $data['err']="ERR_EX";
			if($flag==1)
				$data['msg']="Ảnh upload không hợp lệ.\n Chỉ chấp nhận kiểu file: jpg|png|gif|jpeg";
			elseif($flag==2)
				$data['msg']="Video upload không hợp lệ.\n Chỉ chấp nhận kiểu file: wmv|mpg|mp4|mov|avi|flv";
			elseif($flag==3)
				$data['msg']="File upload không hợp lệ.\n Chỉ chấp nhận kiểu file: doc|zip|rar|docx|xlsx|pptx";
            return $data;
        }
    }
	function removeSign($str){
        $str = strip_tags($str);
        $str = mb_strtolower($str,'utf-8');
        $str = preg_replace("/(à|á|ạ|ả|ã|â|ầ|ấ|ậ|ẩ|ẫ|ă|ằ|ắ|ặ|ẳ|ẵ)/", 'a', $str);  //|á|à|ả|ã|ạ|ấ|ầ|ẩ|ẫ|ậ|ắ|ằ|ẳ|ẵ|ặ
        $str = preg_replace("/(è|é|ẹ|ẻ|ẽ|ê|ề|ế|ệ|ể|ễ)/", 'e', $str);  
        $str = preg_replace("/(ì|í|ị|ỉ|ĩ)/", 'i', $str);  
        $str = preg_replace("/(ò|ó|ọ|ỏ|õ|ô|ồ|ố|ộ|ổ|ỗ|ơ|ờ|ớ|ợ|ở|ỡ)/", 'o', $str);  
        $str = preg_replace("/(ù|ú|ụ|ủ|ũ|ư|ừ|ứ|ự|ử|ữ)/", 'u', $str);  
        $str = preg_replace("/(ỳ|ý|ỵ|ỷ|ỹ)/", 'y', $str);  
        $str = preg_replace("/(đ)/", 'd', $str);
        $str = preg_replace("/(:|;)/","",$str);
        $str = preg_replace("/(́|̀|̉|̃|̣)/","",$str);
        $str = str_replace("_","",$str);
        $str = str_replace("?","",$str);
        $str = str_replace('"',"",$str); 
        $str = str_replace(")","",$str); 
        $str = str_replace("/","",$str);
        $str = str_replace("%","",$str);
        $str = str_replace("&","",$str);
        $str = str_replace("–","",$str);
        $str = str_replace("_","",$str);
        $str = str_replace(".","",$str);
        $str = str_replace(",","",$str);
        $str = str_replace("-","",$str);
        $str = str_replace("(","",$str);
        $str = str_replace("!","",$str); 
        $str = str_replace(" ","-",$str); 
        $str = str_replace("----","-",$str);
        $str = str_replace("---","-",$str);
        $str = str_replace("--","-",$str);
        $str = preg_replace(array('/[^a-zA-Z0-9 -]/'), array(''), $str) ;
        return $str; 
    }
	
    function toMBytes($bytes,$decimal=2) {
		$kb = ($bytes * 8) / 1024;
		$mb = ($kb /1024) / 8;
		return round($mb,$decimal);
	}
    
	function toKBytes($bytes,$decimal=2) {
		$kb = ($bytes * 1) / 1024;
		return round($kb,$decimal);
	}
    
    /*-----------------------------------------------------------------------*
    * Function: toBytes
    * Parameter: Mega bytes
    * Constants:  UPLOAD_SIZE_MBYTES | UPLOAD_SIZE_BYTES
    * Return: file size 
    *-----------------------------------------------------------------------*/

	function toBytes($mb) {
		$bytes = ((($mb * 8) * 1024) * 1024) / 8;
		return $bytes;
	}
	function isImage($str) {

		if(preg_match("/jpg|png|gif|jpeg/",$str)) return 1;
		return 0;
	}
	function isVideo($str) {

		if(preg_match("/wmv|mpg|mp4|mov|avi|flv/",$str)) return 1;
		return 0;
	}
	function isMusic($str) {
		if(preg_match("/wma|wav|mp3|asf/",$str)) return 1;
		return 0;
	}
	function isFile($str) {
		if(preg_match("/doc|zip|rar|docx|xlsx|pptx/",$str)) return 1;
		return 0;
	}
	function get_file_extension($file_name) {
		return substr(strrchr($file_name,'.'),1);
	}
?>